package com.excilys.formation.project.services;

import java.util.SortedSet;

import org.joda.time.Interval;

import com.excilys.formation.project.entities.Compte;
import com.excilys.formation.project.entities.Transaction;

/**
 * 
 * @author excilys
 * 
 */
public interface TransactionService {
	/**
	 * Crée un nouveau virement.
	 * 
	 * @param emetteur
	 *            Compte dont sera débité le montant
	 * @param recepteur
	 *            Compte qui sera crédité du montant
	 * @param montant
	 *            Montant du transfert, strictement positif
	 */
	void creerVirement(Compte emetteur, Compte recepteur, double montant);

	/**
	 * Renvoie les virements émis par client donné dans un interval de temps.
	 * 
	 * @param clientId
	 *            L'id du client dont il faut récupérer les virements
	 * @param interval
	 *            Interval de dates pour récupérer les virements
	 * @return les virements d'un client donné.
	 */
	SortedSet<Transaction> getVirementsEmisByClientByTimeInterval(long clientId, Interval interval);
}
